package com.summer.filesync.model.manager;

import java.util.List;
import java.util.Map;

/** 存储使用报告 */
public class StorageUsageReport {
  private String reportTitle;
  private java.time.LocalDateTime generatedTime;
  private StorageAnalysisResult storageAnalysis;
  private FileSystemStatistics fileSystemStats;
  private List<DuplicateFileGroup> duplicateFiles;
  private List<com.summer.filesync.model.FileMetadata> largeFiles;
  private Map<String, Long> directoryUsage;
  private long potentialSavings;
  private List<String> recommendations;

  public StorageUsageReport() {
    this.reportTitle = "存储使用分析报告";
    this.generatedTime = java.time.LocalDateTime.now();
  }

  // Getters and Setters
  public String getReportTitle() {
    return reportTitle;
  }

  public void setReportTitle(String reportTitle) {
    this.reportTitle = reportTitle;
  }

  public java.time.LocalDateTime getGeneratedTime() {
    return generatedTime;
  }

  public void setGeneratedTime(java.time.LocalDateTime generatedTime) {
    this.generatedTime = generatedTime;
  }

  public StorageAnalysisResult getStorageAnalysis() {
    return storageAnalysis;
  }

  public void setStorageAnalysis(StorageAnalysisResult storageAnalysis) {
    this.storageAnalysis = storageAnalysis;
  }

  public FileSystemStatistics getFileSystemStats() {
    return fileSystemStats;
  }

  public void setFileSystemStats(FileSystemStatistics fileSystemStats) {
    this.fileSystemStats = fileSystemStats;
  }

  public List<DuplicateFileGroup> getDuplicateFiles() {
    return duplicateFiles;
  }

  public void setDuplicateFiles(List<DuplicateFileGroup> duplicateFiles) {
    this.duplicateFiles = duplicateFiles;
  }

  public List<com.summer.filesync.model.FileMetadata> getLargeFiles() {
    return largeFiles;
  }

  public void setLargeFiles(List<com.summer.filesync.model.FileMetadata> largeFiles) {
    this.largeFiles = largeFiles;
  }

  public Map<String, Long> getDirectoryUsage() {
    return directoryUsage;
  }

  public void setDirectoryUsage(Map<String, Long> directoryUsage) {
    this.directoryUsage = directoryUsage;
  }

  public long getPotentialSavings() {
    return potentialSavings;
  }

  public void setPotentialSavings(long potentialSavings) {
    this.potentialSavings = potentialSavings;
  }

  public List<String> getRecommendations() {
    return recommendations;
  }

  public void setRecommendations(List<String> recommendations) {
    this.recommendations = recommendations;
  }
}
